package cn.com.dcsgo.common.validation;

import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;

/**
 * 不为 null 时必须在指定集合中，值会以字符串形式进行 equals 比较
 * 枚举类效验请传递常量名集合
 *
 * @author Dcsgo
 * @since 24/5/2025 上午 10:02
 */
@Documented
@Constraint(validatedBy = InIfNotNullValidator.class)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface InIfNotNull {
    String message() default "当前对象不在指定的集合中";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    /**
     * 允许的集合，值会以字符串形式进行equals比较
     */
    String[] value();
}
